package com.allwees.bs.c.module.user.service;

import com.allwees.bs.c.module.user.constant.EPointQueryType;
import com.allwees.bs.c.module.user.entity.UserPointEntity;
import com.allwees.bs.c.module.user.entity.UserPointLogEntity;
import com.allwees.bs.core.modelbase.page.PageParams;
import com.allwees.bs.core.modelbase.page.PaginateDTO;

import java.util.List;

public interface UserPointService {

    /**
     * @param userUuid
     * @return
     */
    UserPointEntity create(String userUuid);

    /**
     * @param userUuid
     * @return
     */
    List<UserPointEntity> findAllByUserUuid(String userUuid);

    /**
     * @param userUuid
     * @param couponDefUuid
     */
    void pointExchangeCoupon(String userUuid, String couponDefUuid);

    /**
     * @param userUuid
     * @return
     */
    UserPointEntity getPoint(String userUuid);

    /**
     * @param userUuid
     * @param queryType
     * @param pageParams
     */
    PaginateDTO<UserPointLogEntity> page(String userUuid, EPointQueryType queryType, PageParams pageParams);
}
